package model;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.swing.JOptionPane;

public class BD {
	
	/**
	 *  Variaveis de acesso ao Banco de Dados
	 */	
	protected static Connection con;
	protected static PreparedStatement ps;
	
	public static boolean conecta(int i){
		
		/* 
		* String de conexao: 
		*    MySQL - jdbc:mysql://<IP>/<BANCO> 
		*  
		* Class Name: 
		*    MySQL - com.mysql.jdbc.Driver 
		*/  
	
		String urlBD = "jdbc:mysql://localhost/placas";
		String usuarioBD = "root";
		String senhaBD = "";
		
		try {
			Class.forName("com.mysql.jdbc.Driver");
			con = DriverManager.getConnection(urlBD,usuarioBD,senhaBD);
			return true;
		} catch (SQLException eSQL) {
			JOptionPane.showMessageDialog(null, "Ocorreu o seguinte erro:\n" + "Banco de dados não conectado. Verifique seus dados de conexão.","Erro de Conexão" , JOptionPane.ERROR_MESSAGE);
		} catch (ClassNotFoundException eCNF) {
			JOptionPane.showMessageDialog(null, "Ocorreu o seguinte erro:\n" + eCNF.getMessage(), "Erro de Classe n\u00e3o encontrada", JOptionPane.ERROR_MESSAGE);
		} 
		
		return false;
	}
	
	/**
	 * Este método finaliza a conexão com o Banco de Dados. 
	 */
	public static void desconecta() {
		
		try {
			ps.close();
			con.close();
		}
		catch (SQLException eSQL) {
			JOptionPane.showMessageDialog(null, "Ocorreu o seguinte erro:\n" + eSQL.getMessage(),"Erro de SQL" , JOptionPane.ERROR_MESSAGE);
		}
	}
	
	/**
	 * Este método executa a query no Banco de Dados. 
	 */
	public static ResultSet executaSQL(String sql) {
		try {
			return ps.executeQuery(sql);
		} catch (SQLException e) {
			e.printStackTrace();
			JOptionPane.showMessageDialog(null, "Ocorreu o erro na consulta ao banco.","Erro de SQL" , JOptionPane.ERROR_MESSAGE);
			return null;
		}
	}

}
